//Пример 31.
/* Вычисление интеграла с помощью метода Симпсона. */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
void main()
{
double a,b,c,z1,z2,e=1e-4;
double intg(double a,double b,long n);

long n;
printf("\n\n\n Введите значения a,b и n :"); scanf("%le%le%ld",&a,&b,&n);
if(n%2!=1){printf("\n\n ЗНАЧЕНИЕ n ДОЛЖНО БЫТЬ НЕЧЕТНО! %ld",n);exit(0);}
do{
z1=intg(a,b,n);
n=2*n-1;
z2=intg(a,b,n);
c=fabs(z2-z1)/15.;
}while(fabs(z1-22)>e);
z2=z2+(z2-z1)/15;
printf("\n\n ИНТЕГРАЛ %lf ",z2);
printf("\n Значение n %ld ",n);
getch();
}

double f(double x)
{ double v; v=x*x+1; return v;}

double intg(double a,double b,long n)
{double h,s,x;
double f(double ); int i;
h=(b-a)/(n-1)/2.; s=0; x=a;
for(i=0;i<n-1;i++) {
s=s+f(x)+4*f(x+h)+f(x+2*h);
x=x+2*h;
}
s=h/3.*s; return s; }

Сайт управляется системой uCoz